<?php
class skyIo{
	//read file
	/*
		@读取文件
		$path: 文件路径
		$method: 模式
	*/
	static function read($path, $method = 'rb'){
		if(($handle = @fopen($path, $method)) === false || ($content = @fread($handle,filesize($path))) === false) return null;
		else{ fclose($handle); return $content; }
	}
	//write file
	/*
		@写入文件
		$url: 文件路径
		$content: 写入内容
		$method: 模式
	*/
	static function write($url, $content = '', $method = 'wb'){
		if(($handle = @fopen($url, $method)) === false || (@fwrite($handle,$content)) === false) return false;
		else return fclose($handle);
	}
	//rename file
	/*
		@重命名文件
		$oldpath: 旧路径
		$newpath: 新路径
	*/
	static function rename($oldpath, $newpath){ return rename($oldpath, $newpath); }
	//remove file
	/*
		@移除文件
		$path: 文件路径
	*/
	static function remove($path){ return @unlink($path); }
	//make dir
	/*
		@创建目录
		$path: 目录路径
		$mode: 权限
	*/
	static function mkdir($path, $mode = 0777){
		if(is_dir($path)) return true;
		self::mkdir(dirname($path));
		return mkdir($path, $mode);
	}
	
	static function readDirs($path,$type=null){
	if(!is_dir($path)) exit('is not a valied val');
	$dirhandle = opendir($path);
	$arrayFileName = array();
	while(($file = readdir($dirhandle)) !== false){
		if(($file !='.') && ($file != '..')){
			if(strpos($file,'.') !==false && substr($file,substr($file,strlen($file)-strlen($type),strlen($type)))){
			$arrayFileName[] = $file;
		}
		}
	}
	return $arrayFileName;
	}
	//remove dir
	/*
		@移除目录
		$path: 目录路径
	*/
	static function rmdir($path){
		is_dir($path) || exit('<b>Removing directory failed!</b><br />\nPath: '.$path);
		$hd = opendir($path);
		while(($file = readdir($hd)) !== false)
			if($file != '.' && $file != '..')
				is_dir($file = $path.DIRECTORY_SEPARATOR.$file) ? self::dir_remove($file) : unlink($file);
		closedir($hd); return rmdir($path);
	}
	//clean up dir
	//param("undir"): whether delete dir
	/*
		@清理目录
		$path: 目录路径
		$undir: 是否删除目录
	*/
	static function clrdir($path, $undir = false){
		is_dir($path) || exit('b>Removing directory failed!</b><br />\nPath: '.$path);
		$hd = opendir($path);
		if($undir){
			while(($file = readdir($hd)) !== false){
				if($file != '.' && $file != '..')
					is_dir($file = $path.DIRECTORY_SEPARATOR.$file) ? self::dir_remove($file) : unlink($file);
			}
		}else{
			while(($file = readdir($hd)) !== false)
				if($file != '.' && $file != '..')
					is_dir($file = $path.DIRECTORY_SEPARATOR.$file) ? self::dir_clearup($file) : unlink($file);
		}
		closedir($hd); return true;
	}
	//check ext
	/*
		@检测扩展名
		$filename: 文件名
		$ext: 检测的扩展名，数组
	*/
	static function checkext($filename, $ext){
		if(!$ext) return true; //no ext
		$filename = strtolower($filename);
		if(is_array($ext)) {
			if(($extstart = strrpos($filename, '.')) === false) return false;
			return in_array(substr($filename, $extstart+1), $ext);
		} else return strrpos($filename, $ext = strtolower(".$ext")) === strlen($filename) - strlen($ext);
	}
	static function file_get_contents($path){
		if(isset($path) && file_exists($path)){
		return file_get_contents($path);
		}
	}
}
?>
